package com.workants.eboleta.servicio;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.vaadin.data.util.BeanItemContainer;
import com.workants.eboleta.IService.IServiceSolicitudes;
import com.workants.eboleta.dao.DaoSolicitudes;
import com.workants.eboleta.model.PreSolicitud;
import com.workants.eboleta.model.Usuario;


public class ServicioSolicitudes implements IServiceSolicitudes, Serializable{

	private static ServicioSolicitudes instance;
	
	public ServicioSolicitudes(){
		
	}
	
	public static ServicioSolicitudes getInstance(){
		
		if(instance == null){
			instance = new ServicioSolicitudes();
		}
		return instance;
	}

	

	public BeanItemContainer<PreSolicitud> getPreSolicitudesBeanItemContainer() {		
		
		ArrayList<PreSolicitud> presolicitudes;
		presolicitudes = DaoSolicitudes.getInstance().getPresolicitudes();
		List<PreSolicitud> listarPresolicitudes = presolicitudes;
		BeanItemContainer<PreSolicitud> objects = new BeanItemContainer<PreSolicitud>(PreSolicitud.class, listarPresolicitudes);
		objects.addNestedContainerProperty("titular.nombre");
		objects.addNestedContainerProperty("titular.apellido");
		objects.addNestedContainerProperty("titular.tipoDocumentoTitular");
		objects.addNestedContainerProperty("titular.numeroDeDocumentoTitular");	
		objects.addNestedContainerProperty("titular.numeroDeTelefonoTitular");
		objects.addNestedContainerProperty("titular.tipoTelefonoTitular");
		objects.addNestedContainerProperty("titular.numeroDeTelefonoAlternativoTitular");
		objects.addNestedContainerProperty("titular.tipoTelefonoAlternativoTitular");
		objects.addNestedContainerProperty("titular.correoElectronicoTitular");
		objects.addNestedContainerProperty("titular.poseeSolicitante");
		
		
		
		
		return objects;
	}

	@Override
	public int aceptarSuscripcion(PreSolicitud presolicitud, Usuario usuario) {
		
		return DaoSolicitudes.getInstance().acpetarSuscripcion(presolicitud, usuario);
		
	}

	@Override
	public int cancelarSuscripcion(PreSolicitud presolicitud, Usuario usuario) {
		
		return DaoSolicitudes.getInstance().cancelarSuscripcion(presolicitud,usuario);
	}
}